闲扯
贪心真是妙啊,蒟蒻到现在还是没有搞懂诶~
题面
Solution
对于一个节点,在所有可以覆盖它的点中,我们选择一个深度最小的点作为标记节点。
这样可以保证在能覆盖当前节点的基础上,尽可能多的覆盖还没被覆盖过的节点。
需要注意的是,我们需要从深度最大的点开始依次选择。
正确性:
对于一个节点,假设它的深度为 $d$ 。
因为我们是从深度大的开始处理的,所以它的 $k$ 级父亲继续向下延伸一定可以覆盖完子树里面的所有点。
此时若继续向上一级,那么当前节点就无法覆盖;若向下一级,至少会少覆盖 $1$ 个点。
综上,贪心正确。
Code
1 |
|
总结
贪心大法妙啊 $qwq$ 。